package com.example.i2v.model;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;

/**
 * 任务查询响应模型
 */
@Data
public class TaskQueryResponse {
    
    /**
     * 请求唯一标识
     */
    @JsonProperty("request_id")
    private String requestId;
    
    /**
     * 任务输出信息
     */
    private Output output;
    
    /**
     * 用量统计
     */
    private Usage usage;
    
    /**
     * 错误码
     */
    private String code;
    
    /**
     * 错误信息
     */
    private String message;
    
    @Data
    public static class Output {
        /**
         * 任务ID
         */
        @JsonProperty("task_id")
        private String taskId;
        
        /**
         * 任务状态
         */
        @JsonProperty("task_status")
        private String taskStatus;
        
        /**
         * 任务提交时间
         */
        @JsonProperty("submit_time")
        private String submitTime;
        
        /**
         * 任务执行时间
         */
        @JsonProperty("scheduled_time")
        private String scheduledTime;
        
        /**
         * 任务完成时间
         */
        @JsonProperty("end_time")
        private String endTime;
        
        /**
         * 视频URL
         */
        @JsonProperty("video_url")
        private String videoUrl;
        
        /**
         * 原始的输入prompt
         */
        @JsonProperty("orig_prompt")
        private String origPrompt;
        
        /**
         * 开启prompt智能改写后实际使用的prompt
         */
        @JsonProperty("actual_prompt")
        private String actualPrompt;
    }
    
    @Data
    public static class Usage {
        /**
         * 生成视频的时长
         */
        @JsonProperty("video_duration")
        private Integer videoDuration;
        
        /**
         * 生成视频的数量
         */
        @JsonProperty("video_count")
        private Integer videoCount;
        
        /**
         * 生成视频的比例
         */
        @JsonProperty("video_ratio")
        private String videoRatio;
        
        /**
         * 生成视频的画幅尺寸
         */
        @JsonProperty("SR")
        private Integer sr;
    }
}